#ifndef WIZARD_H
#define WIZARD_H

#include <QWizard>
#include "collagewindow.h"

#include "ui_wizardpageextra.h"
#include "ui_wizardpagephotos.h"
#include "ui_wizardpageparametre.h"
#include "ui_wizardpageforme.h"
#include "ui_wizardpagebegin.h"

#include "planche.h"

class MainWindow;

namespace Ui {
class Wizard;
class WizardPageExtra;
class WizardPagePhotos;
class WizardPageParametre;
class WizardPageForme;
class WizardPageBegin;
}

/*
 *  Wizard : classe principale
 */
class Wizard: public QWizard , public CollageWindow
{
    Q_OBJECT
    
public:
    explicit Wizard(MainWindow* parent);
    virtual void showMessage(QString);
    virtual void on_update_delete();
    ~Wizard();

    MainWindow* mainWindow;

    enum { PAGE_INTRO,PAGE_PHOTOS,PAGE_FORME,PAGE_EXTRA,PAGE_PARAM };
    
};
/*
 *  WizardPage : Accueil
 */
class WizardPageBegin : public QWizardPage
{
    Q_OBJECT

public:
    explicit WizardPageBegin(QWidget *parent = 0);
    ~WizardPageBegin();

private:
    Ui::WizardPageBegin *ui;
};
/*
 *  WizardPage : Extra
 */
class WizardPageExtra : public QWizardPage
{
    Q_OBJECT

public:
    explicit WizardPageExtra(QWidget *parent = 0);
    Planche* planche;
    ~WizardPageExtra();
    virtual bool validatePage ();

private:
    Ui::WizardPageExtra *ui;
};
/*
 *  WizardPage : Photos
 */
class WizardPagePhotos : public QWizardPage
{
    Q_OBJECT

public:
    explicit WizardPagePhotos(QWidget *parent = 0);
    ~WizardPagePhotos();
    bool isComplete()const;

private slots:
    void on_retireButton_clicked();
    void on_clearButton_clicked();

    void on_ajoutButton_clicked();

private:
    Ui::WizardPagePhotos *ui;
};
/*
 *  WizardPage : Forme
 */
class WizardPageForme : public QWizardPage
{
    Q_OBJECT

public:
    explicit WizardPageForme(QWidget *parent = 0);
    ~WizardPageForme();
    virtual int nextId() const;
    virtual void initializePage();

private slots:
    void on_cercleRadioButton_clicked();
    void on_rectangleRadioButton_clicked();
    void on_extraRadioButton_clicked();

private:
    Ui::WizardPageForme *ui;
};
/*
 *  WizardPage : Parametre
 */
class WizardPageParametre : public QWizardPage
{
    Q_OBJECT

public:
    explicit WizardPageParametre(QWidget *parent = 0);
    ~WizardPageParametre();
    virtual bool validatePage ();

private:
    Ui::WizardPageParametre *ui;
};

#endif // WIZARD_H
